package com.example.timemanagementclock;

import java.text.SimpleDateFormat;
import java.util.Date;

import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.TimePicker;

public class AddTaskActivity extends ActionBarActivity {

	TextView txtNgayLamViec, txtGioBatDau, txtGioKetThuc;

	private void LoadCurrentDateTime() {
		txtNgayLamViec = (TextView) findViewById(R.id.txtNgayLamViec);
		txtGioBatDau = (TextView) findViewById(R.id.txtGioBatDau);
		txtGioKetThuc = (TextView) findViewById(R.id.txtGioKetThuc);

		Date date = new Date();
		SimpleDateFormat sdf = null;
		String strDateFormat = "dd/MM/yyyy";
		sdf = new SimpleDateFormat(strDateFormat);
		txtNgayLamViec.setText(sdf.format(date));

		String strHourStartFormat = "00:00";
		sdf = new SimpleDateFormat(strHourStartFormat);
		txtGioBatDau.setText(sdf.format(date));

		String strHourEndFormat = "23:59";
		sdf = new SimpleDateFormat(strHourEndFormat);
		txtGioKetThuc.setText(sdf.format(date));
	}

	public void showDatePickerDialog() {
		OnDateSetListener callback = new OnDateSetListener() {
			boolean flag = false;

			public void onDateSet(DatePicker view, int year, int monthOfYear,
					int dayOfMonth) {
				if (flag == false) {
					// Mỗi lần thay đổi ngày tháng năm thì cập nhật lại TextView
					// Date
					monthOfYear = monthOfYear + 1;
					String strYear, strMonth, strDay;
					strYear = year + "";
					if (monthOfYear < 10)
						strMonth = "0" + monthOfYear;
					else
						strMonth = monthOfYear + "";

					if (dayOfMonth < 10)
						strDay = "0" + dayOfMonth;
					else
						strDay = dayOfMonth + "";

					String s = strDay + "/" + strMonth + "/" + strYear;
					txtNgayLamViec.setText(s);
					// Lưu vết lại biến ngày hoàn thành
					// cal.set(year, monthOfYear, dayOfMonth);
					// dateFinish = cal.getTime();
				} else {
					return;
				}
			}
		};
		// các lệnh dưới này xử lý ngày giờ trong DatePickerDialog
		// sẽ giống với trên TextView khi mở nó lên
		String s = txtNgayLamViec.getText() + "";
		String strArrtmp[] = s.split("/");
		int ngay = Integer.parseInt(strArrtmp[0]);
		int thang = Integer.parseInt(strArrtmp[1]);
		int nam = Integer.parseInt(strArrtmp[2]);
		DatePickerDialog pic = new DatePickerDialog(this, callback, nam, thang - 1,
				ngay);
		pic.setTitle("Chọn ngày làm việc");
		pic.show();
	}

	public void showTimeStartPickerDialog() {
		OnTimeSetListener callback = new OnTimeSetListener() {
			boolean flag = false;

			public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
				if (flag == false) {
					// Xử lý lưu giờ và AM,PM
					String strHour, strMinute;
					if (hourOfDay < 10)
						strHour = "0" + hourOfDay;
					else
						strHour = hourOfDay + "";

					if (minute < 10)
						strMinute = "0" + minute;
					else
						strMinute = minute + "";

					String s = strHour + ":" + strMinute;
					// int hourTam=hourOfDay;
					// if(hourTam>12)
					// hourTam=hourTam-12;
					txtGioBatDau.setText(s);
					// (hourTam +":"+minute +(hourOfDay>12?" PM":" AM"));
					// //lưu giờ thực vào tag
					txtGioBatDau.setTag(s);
					// //lưu vết lại giờ vào hourFinish
					// cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
					// cal.set(Calendar.MINUTE, minute);
					// hourFinish=cal.getTime();
				} else {
					return;
				}
			}
		};
		// các lệnh dưới này xử lý ngày giờ trong TimePickerDialog
		// sẽ giống với trên TextView khi mở nó lên
		// String s=txtGioBatDau.getTag()+"";
		String s = txtGioBatDau.getText() + "";
		String strArr[] = s.split(":");
		int gio = Integer.parseInt(strArr[0]);
		int phut = Integer.parseInt(strArr[1]);
		TimePickerDialog time = new TimePickerDialog(this, callback, gio, phut,
				true);
		time.setTitle("Chọn giờ bắt đầu");
		time.show();
	}

	public void showTimeEndPickerDialog() {
		OnTimeSetListener callback = new OnTimeSetListener() {
			boolean flag = false;

			public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
				if (flag == false) {
					String strHour, strMinute;
					if (hourOfDay < 10)
						strHour = "0" + hourOfDay;
					else
						strHour = hourOfDay + "";

					if (minute < 10)
						strMinute = "0" + minute;
					else
						strMinute = minute + "";

					String s = strHour + ":" + strMinute;
					// int hourTam=hourOfDay;
					// if(hourTam>12)
					// hourTam=hourTam-12;
					txtGioKetThuc.setText(s);
					// (hourTam +":"+minute +(hourOfDay>12?" PM":" AM"));
					// //lưu giờ thực vào tag
					txtGioKetThuc.setTag(s);
					// //lưu vết lại giờ vào hourFinish
					// cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
					// cal.set(Calendar.MINUTE, minute);
					// hourFinish=cal.getTime();
				} else {
					return;
				}
			}
		};
		// các lệnh dưới này xử lý ngày giờ trong TimePickerDialog
		// sẽ giống với trên TextView khi mở nó lên
		// String s=txtGioKetThuc.getTag()+"";
		String s = txtGioKetThuc.getText() + "";
		String strArr[] = s.split(":");
		int gio = Integer.parseInt(strArr[0]);
		int phut = Integer.parseInt(strArr[1]);
		TimePickerDialog time = new TimePickerDialog(this, callback, gio, phut,
				true);
		time.setTitle("Chọn giờ kết thúc");
		time.show();
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_add_task);

		// if (savedInstanceState == null) {
		// getSupportFragmentManager().beginTransaction()
		// .add(R.id.container, new PlaceholderFragment()).commit();
		// }
		LoadCurrentDateTime();
		ImageView ivNgayLamViec = (ImageView) findViewById(R.id.ivNgayLamViec);
		ImageView ivGioBatDau = (ImageView) findViewById(R.id.ivGioBatDau);
		ImageView ivGioKetThuc = (ImageView) findViewById(R.id.ivGioKetThuc);

		ivNgayLamViec.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showDatePickerDialog();
			}
		});

		ivGioBatDau.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showTimeStartPickerDialog();
			}
		});

		ivGioKetThuc.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				showTimeEndPickerDialog();
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.add_task, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	/**
	 * A placeholder fragment containing a simple view.
	 */
	public static class PlaceholderFragment extends Fragment {

		public PlaceholderFragment() {
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.activity_add_task,
					container, false);
			return rootView;
		}
	}

}
